

module.exports = function () {
    let obj = {}

    function isJd (jn, qc, list) {
        
        let r = false
        try {
            list.forEach(item => {
                if (item) {
                    if (item.jn <= jn && item.qc >= qc) {
                        print('符合条件')
                        r = true
                        throw "符合条件，跳出forEach"
                    } else {
                        print('不符合条件')
                        r = false
                    }
                }
            })
        } catch (_err) {

        }
        return r
    }

    function closeDd () {
        //关闭订单

    }

    function main () {
        log('开始执行')

        auto.waitFor()
        while (1) {
            let pLayout = id("content").findOne()
    
            无条件 = false
            let qd_button = pLayout.findOne(textContains('立即抢单'))
            if (qd_button) {
                log('抢单')
                let jl_text = qd_button.parent().find(textMatches(/\d{1,2}\.\d{1,2}/))

                if (jl_text.length > 1) {
                    //开始更新订单内容
                    let descText = '距您：'+jl_text[0].text()+'km\n全程：'+jl_text[1].text()+'km'
                    console.info(descText)
                    
                    ui.run(() => {
                        window.dd_desc.setText(descText)
                    })
                    //开始判断距离
                    let now_nj = Number(jl_text[0].text()),
                    now_qc = Number(jl_text[1].text())

                    //先进行冲单判断
                    if (qc_checked && !无条件) {
                        if (now_qc >= 全程大于) {
                            //无条件接单
                            log('可以接单')
                            无条件 = true
                        } else {
                            if (关闭订单) {
                                closeDd()
                            }
                            continue
                        }
                    }

                    if (jn_checked && !无条件) {
                        if (now_nj <= 距您) {
                            //无条件接单
                            log('可以接单')
                            无条件 = true

                        } else {
                            if (关闭订单) {
                                closeDd()
                            }
                            continue
                        }
                    }

                    //再进行列表判断

                    if (!isJd(now_nj, now_qc, 抢单条件) && !无条件) {
                        if (关闭订单) {
                            closeDd()
                        }
                        continue
                    } else {
                        log('条件满足 可以接单')
                        无条件 = true

                    }

                    //开始判断预约单

                    if (pLayout.findOne(textContains('预约'))) {
                        log('预约单')
                        if (抢预约单) {
                            log('抢预约单')
                        } else {
                            log('不抢预约')
                            if (关闭订单) {
                                closeDd()
                            }
                            continue
                        }
                    } else {
                        log('非预约单')
                    }

                    //条件满足后'
                    toastLog('开始抢单')
                    while(!qd_button.click());

                    if (1) {
                        //抢单成功
                        //等待行程结束

                    } else {
                        //抢单失败

                    }
                }
            } else {
                // log('---')
                print('等待中...')
            }
        }
    }

    obj.run = function (t) {
        //初始化变量
        let 抢单条件 = t.storage.get('list')
        qc_checked = t.storage.get('checked_1'),
        jn_checked = t.storage.get('checked_2'),
        全程大于 = t.storage.get('qc_1'),
        距您 = t.storage.get('jn_1'),
        关闭订单 = t.storage.get('checked_3'),
        语音提示 = t.storage.get('checked_4'),
        抢预约单 = t.storage.get('checked_5'),
        无条件 = false,
        
        window = t.window;
        // toastLog(t.window.success.text())



        main()
    }

    return obj
}

